草庐IT

JavaScript setTimeout 无法访问函数变量

全部标签

javascript - react 备忘录组件并在将函数作为 Prop 传递时重新渲染

假设我有这些React组件:constCompo1=({theName})=>{return(console.log('Dr.'+theName)}/>);};constCompo2=({theName})=>{functiontheFoo(){console.log('Dr.'+theName);}return();};嵌套组件,包裹在memo中:constNested=React.memo(({foo})=>{return(Clickme);});传入foo的函数是alwaysrecreated在Compo1和Compo2中,正确吗?如果是这样,因为foo每次都会接收到一个新的函数

javascript - 如何在不同的上下文中使用 es6 构造函数指令

是否可以通过更改“this”上下文(调用、应用或其他)在另一个实例上使用es6构造函数指令?这可以使用es5“类”。这是我的意思的一个小例子:functionES5(){this.foo='foo';}classES6{constructor(){this.bar='bar';}}vara=newES6();ES5.call(a);console.log(a.foo+a.bar);//foobarvarb=newES5();//Reflect.construct(ES6);??ES6.call(b);//TypeError:ClassconstructorES6cannotbeinvo

javascript - 类方法与类字段函数与类字段箭头函数之间有什么区别?

类方法、作为函数的类属性和作为箭头函数的类属性有什么区别?this关键字在方法的不同变体中的行为是否不同?classGreeter{constructor(){this.greet();this.greet2();this.greet3();}greet(){console.log('greet1',this);}greet2=()=>{console.log('greet2',this);}greet3=function(){console.log('greet3',this);}}letbla=newGreeter();这是从TypeScript转译后生成的JavaScript。v

javascript - 如何处理来自函数数组的重复函数调用?

我正在尝试按顺序执行函数(同步/异步)的以下数组(避免callbackHell),实现函数runCallbacksInSequence(我需要实现自己的函数以了解回调如何工作并避免使用Async.js)。这是我目前所拥有的。函数runCallbacksInSequence运行良好,直到它多次获得相同的callback。它停止并且不继续执行下一个回调。理想情况下,如果它多次获得相同的callback,则不应执行第二次并继续下一个callback。如果您有任何想法,请告诉我我做错了什么以及如何解决。-没有promise和异步/等待functionfirst(cb){setTimeout(f

javascript - 访问在 JavaScript 中使用 attachEvent()/addEventListener() 添加的事件

如何在JavaScript中访问使用attachEvent()/addEventListener()添加的事件?用例:使用FireBug的控制台调试事件。 最佳答案 无法访问它们。根据您要实现的目标,调试事件的更好方法可能是输出eventproperties您对事件处理函数感兴趣... 关于javascript-访问在JavaScript中使用attachEvent()/addEventListener()添加的事件,我们在StackOverflow上找到一个类似的问题:

javascript - 将多行文本存储在 JavaScript 变量中

Ho将多行文本存储在javascript变量中;我正在使用PHP为javascript变量赋值。请看下面的示例代码NewDocumentbar='';alert(bar);我不想丢失任何空白字符。如何做到这一点? 最佳答案 遗憾的是,这有点烦人,因为您不能那样做。你必须这样做:varstr=["Hello,thisisa\n""multiline\n","string."].join("");或者,使用类似的技巧,varstr=["Hello,this","isamultiline","stringseparatedbynewlin

javascript - 带有上下文参数 jquery 1.4 的克隆和实时函数

我有几个divHTML元素,我正在使用clone(true)选项克隆它,因为我也想复制事件。现在我的HTMLdivblock中有某些点击事件,而在创建事件时我也使用上下文参数,例如var$block=""+""+""+""+""+""+"");$(".wtp",$block).live('click',function(){alert("hi");})现在,当我使用clone(true)克隆此block时,即使我正在分配上下文参数,点击事件也不会触发。 最佳答案 .live()方法需要实际的选择器来匹配元素。试试这个:$(".tas

javascript - 为什么我不能从 Ajax 函数返回 responseText?

这个问题在这里已经有了答案:HowdoIreturntheresponsefromanasynchronouscall?(41个回答)关闭8年前。这是我的Ajax函数的一部分。由于某些我无法弄清楚的原因,我能够alert()responseText但不能returnresponseText。有人可以帮忙吗?我需要在另一个函数中使用该值。http.onreadystatechange=function(){if(http.readyState==4&&http.status==200){returnhttp.responseText;}}

JavaScript:通过局部变量引用宿主函数

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:JavaScriptfunctionaliasingdoesn'tseemtowork为什么这行不通?functionfoo(){varg=document.getElementById;g('sampleID');}在Chrome中抛出这个错误:UncaughtTypeError:Illegalinvocation...在Firefox中:错误:未捕获的异常:[异常...“对WrappedNative原型(prototype)对象的非法操作”虽然它在IE9beta中工作!!演示:http://jsfiddl

javascript - 将javascript变量发送到rails?

我需要将javascript变量植入Controller。例如,如果我在View中的代码如下-...variable_test='hello'...我需要Controller获取variable_test,比如-defhello@variable_test=#Somecode#@variable_test=>'hello'endView当然是你好,'一些代码'是我不知道该怎么做。 最佳答案 您不能将客户端代码发送到Controller,除非您执行某种获取或发布操作。尝试使用jQuery的post或get方法。如果您不使用jQuery